home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 32 / jots.zip / MAKELIST.BAS < prev    next >
BASIC Source File  |  1989-03-13  |  2KB  |  74 lines

  1. DEFINT A-Z
  2. CLS
  3. PRINT "Making JWORDS.JOT"
  4.  
  5. INPUT "Name of input file: ", Infile$
  6. OPEN Infile$ FOR INPUT AS 1
  7. WordCount = 0
  8. DO UNTIL EOF(1)
  9.     LINE INPUT #1, InWord$
  10.     InWord$ = UCASE$(LTRIM$(RTRIM$(InWord$)))
  11.     IF LEN(InWord$) = 5 THEN
  12.         WordCount = WordCount + 1
  13.     END IF
  14. LOOP
  15. CLOSE
  16. PRINT "Reading"; WordCount; "words from "; Infile$
  17. PRINT
  18.  
  19. DIM WordList$(WordCount + 40)
  20. OPEN Infile$ FOR INPUT AS 1
  21. Wcount = 0
  22. DO UNTIL EOF(1)
  23.     LINE INPUT #1, InWord$
  24.     InWord$ = UCASE$(LTRIM$(RTRIM$(InWord$)))
  25.     IF LEN(InWord$) = 5 THEN
  26.         Wcount = Wcount + 1
  27.         WordList$(Wcount) = InWord$
  28.     END IF
  29. LOOP
  30. CLOSE
  31.  
  32.     PRINT "Sorting and saving new word list ";
  33.     
  34.     Count = WordCount
  35.     FirstWordPtr = 1
  36.     FOR Lp = 2 TO Count
  37.         IF WordList$(Lp) < WordList$(FirstWordPtr) THEN
  38.             FirstWordPtr = Lp
  39.         END IF
  40.     NEXT Lp
  41.     IF FirstWordPtr <> 1 THEN
  42.         SWAP WordList$(1), WordList$(FirstWordPtr)
  43.     END IF
  44.     FOR Lp = 2 TO Count
  45.         Ptr = Lp
  46.         DO WHILE WordList$(Ptr) < WordList$(Ptr - 1)
  47.             SWAP WordList$(Ptr), WordList$(Ptr - 1)
  48.             Ptr = Ptr - 1
  49.         LOOP
  50.         IF Lp MOD 100 = 0 THEN PRINT ".";
  51.     NEXT Lp
  52.  
  53.     OPEN "JWORDS.JOT" FOR BINARY AS 1
  54.     PUT 1, , Count
  55.     Ptr = 1
  56.     Suffix$ = STRING$(3, " ")
  57.     DO WHILE Ptr <= Count
  58.         PrefPtr = Ptr
  59.         Prefix$ = LEFT$(WordList$(Ptr), 2)
  60.         DO WHILE LEFT$(WordList$(PrefPtr + 1), 2) = Prefix$ AND PrefPtr < Ptr + 30
  61.             PrefPtr = PrefPtr + 1
  62.         LOOP
  63.         PrefCount = PrefPtr - Ptr + 1
  64.         Prefix$ = CHR$(PrefCount) + Prefix$
  65.         PUT 1, , Prefix$
  66.         FOR Lp = Ptr TO PrefPtr
  67.             LSET Suffix$ = MID$(WordList$(Lp), 3)
  68.             PUT 1, , Suffix$
  69.         NEXT Lp
  70.         Ptr = PrefPtr + 1
  71.     LOOP
  72.     CLOSE
  73.  
  74.